package com.wiscamp.ninechapters.panels.application.command;

import cube.ddd.application.command.CommandObject;
import jakarta.validation.constraints.Min;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

/**
 * 用户表
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CreateUserCommand extends CommandObject {

    /**
     * 应用编号
     */
    @Min(value = 1, message = "编号最小值不能低于1。")
    private Long applicationId = 0L;

    /**
     * 用户代码
     */
    @Length(max = 50, message = "用户代码文本长度不能超过50。")
    private String userCode = "";

    /**
     * 用户姓名
     */
    @Length(max = 100, message = "用户姓名文本长度不能超过100。")
    private String userName = "";

    /**
     * 用户类型编号
     */
    private Long userTypeId = 0L;

    /**
     * 账号类型编号
     */
    private Long accountTypeId = 0L;

    /**
     * 加密口令
     */
    private String password = "";

    /**
     * 关联账户编号
     */
    private Long referenceId = 0L;

    /**
     * 关联账户代码
     */
    @Length(max = 50, message = "关联账户代码文本长度不能超过50。")
    private String referenceCode = "";

    /**
     * 组织机构编号
     */
    private Long organizationId = 0L;

    /**
     * 成员编号
     */
    private Long personId = 0L;

    /**
     * 邮箱
     */
    @Length(max = 50, message = "邮箱文本长度不能超过50。")
    private String email = "";

    /**
     * 手机号码
     */
    @Length(max = 50, message = "手机号码文本长度不能超过50。")
    private String cellphone = "";

    /**
     * 备注
     */
    @Length(max = 250, message = "备注文本长度不能超过250。")
    private String remark = "";
}
